我定义了一个如下的接口:
interface IChat {
chat_id: Buffer;
user_id: Buffer;
admin_id: Buffer;
user_name: string;
admin_name: string;
start_time: string;
ending_time: string;
messages: IMessage[];
}
interface IMessage {
type: boolean; // 0 = admin , 1 = user
message: string;
}
export { IChat };
然后我尝试在另一个文件中使用它,但是当我尝试导入和实现它时,如下所示:
import { IChat } from "../models/chat";
class Chats implements IChat {
chat_id: Buffer;
user_id: Buffer;
admin_id: Buffer;
user_name: string;
admin_name: string;
start_time: string;
ending_time: string;
messages: IMessage[];
我得到这个错误:
Cannot find name 'IMessage'.ts(2304)
就像IChat
一样导出/导入。
在你的模型文件中:
export { IChat, IMessage };
在你的消费文件中:
import { IChat, IMessage } from "../models/chat";
如果你想使用给定的类型,除了核心TypeScript/JavaScript/DOM所提供的,你必须显式导入它。TypeScript中没有类型的自动传递导入。如果有的话,您的本地名称空间将被污染到几乎不可能出现未使用的类型名称的程度。