我有一个包含模块的文件,如下所示
ROOT /数据库/ models.ts
module Model {
export interface Inbox {
title: string;
msg: string;
}
export interface User{
Id: string;
Name: string;
}
}
我想从主文件访问接口。看看我尝试了什么
ROOT /页/ main.ts
import { Model} from '../database/models'; //<-- here is my problem
export class WorkerPostbidPage {
myinbox:Model.Inbox; // <-- And I want to call it as this
TestMethod() {
this.myinbox = {
title:"new msg",
msg:"you have an alert"
}
}
}
但是当我将外部模型文件内容复制到main.ts中时,它可以正常工作
module Model {
export interface Inbox {
title: string;
msg: string;
}
export interface User{
Id: string;
Name: string;
}
}
export class WorkerPostbidPage {
myinbox:Model.Inbox; // <-- And I want to call it as this
TestMethod() {
this.myinbox = {
title:"new msg",
msg:"you have an alert"
}
}
}
我想我可能做错了什么,或者我错过了一些部分
答案 0 :(得分:0)
您应该重写model.ts文件,使其符合ES6模块。
export interface Inbox {
title: string;
msg: string;
}
export interface User{
Id: string;
Name: string;
}
那么你应该能够像这样导入它们。
import { Inbox } from '../database/models';
答案 1 :(得分:0)
您无法使用此方法导入外部模块。 外部模块最终将被添加到全局范围,因此您应该将其视为这样。
假设您正在使用amd模块,那么这样的事情应该起作用
declare module Model{
interface Inbox{
title: string,
msg: string
}
}
/// <amd-dependency path="../database/models"/>
export class WorkerPostbidPage {
myinbox:Model.Inbox; // <-- And I want to call it as this
TestMethod() {
this.myinbox = {
title:"new msg",
msg:"you have an alert"
}
}
}