我有一個很難得到打字稿識別本地ES6模塊的形狀:Typescript找不到本地es6模塊;錯誤TS2307:找不到模塊
轉換-time.js
export const minutes = sec => sec * 60
export const hours = sec => minutes(sec) * 60
export const days = sec => hours(sec) * 24
export const weeks = sec => days(sec) * 24
export const years = sec => days(sec) * 365
注:我想弄清楚如何在不改變convert-time.js
的情況下使其工作。
這裏是我試圖將其導入到文件:
index.ts
/// <reference path="../typings/convert-time.d.ts" />
import { minutes, days } from '../test/helpers/convert-time'
這裏是類型定義文件,我創建:
轉換時間.d.ts:
declare module "convert-time" {
export function minutes(sec: number): number;
export function hours(sec: number): number;
export function days(sec: number): number;
export function weeks(sec: number): number;
export function years(sec: number): number;
}
這裏是我的tsconfig:
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": false,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true,
"jsx": "react"
},
"files": [
"typings/index.d.ts",
"typings/convert-time.d.ts"
],
"exclude": [
"node_modules"
]
}
步驟嘗試:
- 搜索StackOverflow上爲
error TS2307: Cannot find module
。大多數問題都是關於具有類型定義的外部模塊。我找不到本地模塊的例子。 - 閱讀https://www.typescriptlang.org/docs/handbook/modules.html
- 讀https://www.typescriptlang.org/docs/handbook/module-resolution.html
- 新增
typings/convert-time.d.ts
到files
部分tsconfig.json
。 - 增加
/// <reference path='../../typings/convert-time.d.ts' />
到index.ts
無上述的工作!我必須學會怎樣才能讓這個工作成爲可能?謝謝!
在你的'compilerOptions'你需要有'allowJs:TRUE'到允許JavaScript文件,否則它會報錯。 –