說我有具有以下聲明文件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 –