说我有具有以下声明文件user.ts:声明接口
export interface User {
userName: string;
}
我想导入另一个TS脚本这个接口,但是由于JavaScript不支持接口transpiler不会产生user.js,我在导入时遇到错误。
当然,我可以将User声明为类作为解决方法,但是有没有办法在单独的TypeScript文件中声明接口?
说我有具有以下声明文件user.ts:声明接口
export interface User {
userName: string;
}
我想导入另一个TS脚本这个接口,但是由于JavaScript不支持接口transpiler不会产生user.js,我在导入时遇到错误。
当然,我可以将User声明为类作为解决方法,但是有没有办法在单独的TypeScript文件中声明接口?
您可以尝试使用户文件具有.d.ts扩展名。
例如:
user.d.ts
export interface User { name: string }
,也可以将它像往常一样:
someotherfile.ts
import {User} from './user';
function check(user: User) {
if (user.name) {
console.log('yeey works');
}
}
check({ name: 'ion' });
此代码工作正常。但在我的应用程序中,我使用SystemJS加载程序即时编译代码。它给我以下错误: (程序):1未捕获SyntaxError:意外的令牌导出 –
uhm。你能用你正在使用的SystemJS配置更新你的问题吗? :) – toskv
其实问题似乎是在其他地方:( 我得到你的例子与SystemJS以及 事情是,我在Angular 2应用程序中使用此代码,它不喜欢导出关键字。让我多研究一下。 谢谢你的帮助! –
什么扩展的呢用户文件有?它应该是纯粹的接口文件.d.ts。 – toskv
我刚刚.ts。将尝试与d.ts,谢谢。 –
更新。该界面可以位于一个单独的文件,如user.ts.我使用SystemJS来加载和编译我的代码。我遇到的问题是由于SystemJS不知道生成的空user.js是为了作为模块而使用的。添加在SystemJS配置以下后,开始代码工作罚款: 元:{ “user.ts”:{ 格式:“ES6” }当我在命令行中使用TSC –