0
這裏使用打字稿接口模塊定義的簡單接口的文件:在另一個模塊文件
interface IDirectoryLink
{
link_title: string
link_desc: string
}
這裏是類模塊的文件:
class DirectoryModel implements IDirectoryLink
{
public link_title: string
public link_desc: string
constructor(fields: Object)
{
// Loops to populate class properties with fields values
_.forOwn(fields, (value, key) => // Needs fat arrow to bind 'this'
{
if (value) { this[key] = value }
})
}
}
後來下來的文件,我instanciate類:
let directoryModel: IDirectoryLink = new DirectoryModel(fields)
let directoryModel: IDirectoryLink = new DirectoryModel(fields)
然後仍然在模塊A,將該實例傳遞到模塊B中的函數進行驗證:
let val = validation.modelValidator(directoryModel)
在模塊B檔,這裏是正在傳遞的模型實例做了一些工作的函數的頂部:
export let modelValidator = function (directoryModel: IDirectoryLink) // cannot find name IDirectoryLink
{
//code
}
我希望的實例作爲「通過directoryModel'將是IDirectoryLink類型。但不是,它的類型是「any」,如果我在上面的代碼中添加':IDirectoryLink',它會顯示'找不到名稱IDirectoryLink'。
什麼是正確的方式能夠將傳遞的實例識別爲模塊B文件中的IDirectoryLink類型? 我應該導入B中包含導出接口的整個模塊A嗎?