首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在typescript + react中从其他文件(相同名称空间)导入类

在typescript + react中从其他文件(相同名称空间)导入类
EN

Stack Overflow用户
提问于 2016-01-15 18:42:33
回答 1查看 3.5K关注 0票数 1

我有两个文件comment.tsx和commentlist.tsx

comment.tsx看起来像这样:

代码语言:javascript
复制
/// <reference path="./typings/react/react.d.ts" />
/// <reference path="./typings/react/react-dom.d.ts" />
/// <reference path="interfaces.d.ts" />

import * as React from "react";
import * as ReactDOM from "react-dom";

namespace W.T.F {
    export class Comment extends React.Component<ICommentData, {}>{
        constructor(props: ICommentData) {
            super(props);
        }

        public render() {
            return (
                <div className="comment">
                <h2 className="commentAuthor">{this.props.Author}</h2>
                <span>{this.props.Text}</span>
                    </div>
            );
        }
    }
}

和commentlist.tsx

代码语言:javascript
复制
/// <reference path="./typings/react/react.d.ts" />
/// <reference path="./typings/react/react-dom.d.ts" />
/// <reference path="comment.tsx" />
/// <reference path="interfaces.d.ts" />

import * as React from "react";
import * as ReactDOM from "react-dom";
import Comment = W.T.F.Comment;

namespace W.T.F {
    export class CommentList extends React.Component<ICommentListData, {}>{
        public render() {
            var commentNodes = this.props.Data.map(function (comment: ICommentData) {
                return (
                    <Comment Author={comment.Author} Text={comment.Text}>{comment.Text}</Comment>
                );
            });
            return (
                <div className="commentList">
                    {commentNodes}
                </div>
            );
        }
    };
}

编译这些文件会导致错误

commentlist.tsx(8,24) TS2305模块'W.T.F‘没有导出的成员'Comment’。

我的源码出了什么问题?

从其他文件导入其他react类(包含在名称空间中)的最佳方式是什么?

EN

回答 1

Stack Overflow用户

发布于 2016-04-30 05:07:45

如果有任何顶级导入,TypeScript会将文件视为外部模块,并且示例中的命名空间将成为模块的一部分。

大多数项目都希望使用不带名称空间的外部模块,但要以您尝试的方式使用名称空间,请使用以下较旧的引用/导入语法,并在名称空间内定义导入:

代码语言:javascript
复制
/// <reference path="./typings/react/react.d.ts" />
namespace W.T.F {
    import React = __React;

    export class Comment extends React.Component<ICommentData, {}>{
        constructor(props: ICommentData) {
            super(props);
        }

        public render() {
            return (
                <div className="comment">
                <h2 className="commentAuthor">{this.props.Author}</h2>
                <span>{this.props.Text}</span>
                    </div>
            );
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34809284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档