使用Typescript 3. *和momentjs作为日期 并且出现编译时错误。
错误:(3,13)TS2349:无法调用类型缺少调用签名的表达式。类型'typeof moment'没有兼容的呼叫签名。
所以,我正在寻找解决此错误的解决方案。 并找到以下文章, 我做了与文章中描述的解决方案相同的事情。
但是再次出现编译时错误。
错误:(1,8)TS1192:模块'“ / Users / hogehoge / Work / Work_Fork / hoge / node_modules / moment / moment”'没有默认导出。
这是我的tsconfig和程序。
{
"compilerOptions": {
"moduleResolution": "node",
"skipLibCheck": false,
"target": "es5",
"module": "commonjs",
"lib": ["es2017", "dom"],
"experimentalDecorators": true,
"allowJs": false,
"jsx": "react",
"sourceMap": true,
"strict": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"esModuleInterop": true,
"removeComments": true,
"newLine": "LF",
"downlevelIteration": true,
"resolveJsonModule": true,
"allowSyntheticDefaultImports": false
},
"exclude": ["node_modules"]
}
import moment from 'moment';
console.log(moment().format('YYYY-MM-DD'))
答案 0 :(得分:0)
我没有您的package.json,所以我以这种方式重现了您的情况:
npm init
npm i typescript moment @types/node
文件test.ts
let moment = require("moment");
console.log(moment().format('YYYY-MM-DD'))
(使用require
代替import
)
然后执行“编译器”:
_modules/.bin/tsc test.ts
没有错误,这样对我来说效果很好。
从今天开始,脚本返回2019-09-30
。