gpt4 book ai didi

typescript - 在 Angular 2 typescript 应用程序中使用 moment.js

转载 作者:太空狗 更新时间:2023-10-29 17:05:16 24 4
gpt4 key购买 nike

我正在努力在 Angular 2 Typescript 应用程序中使用 moment.js 库。即使在阅读了 this question 的答案之后我无法让它工作。

这是我目前所做的:

  • 我使用 npm 安装了 moment.js,所以我可以在 node_modules/moment/moment.js 下找到库
  • 我配置了 System.js 来检索时刻库:

    System.config({
    packages: {
    app: {
    format: 'register',
    defaultExtension: 'js'
    },
    moment: {
    main: 'moment.js',
    type: 'cjs',
    defaultExtension: 'js'
    }
    },
    map: {
    moment: 'node_modules/moment'
    }
    });
  • 我使用 typings install moment-node --ambient --savetypings install moment --ambient --save 安装了 typescript typings,所以我可以看到正确的typings inside typings/main/ambient/moment-node 和 typings/main/ambient/moment

现在,如果我在我的代码中使用 import * as moment from 'moment'; typescript 编译运行顺利,我可以在 Atom 编辑器中看到正确的建议(如果我从 moment 开始(). 我可以看到 year()、month() 等)。但是,如果我在浏览器中运行我的代码,它会给出一个错误提示“m​​oment is not a function”(调试时我可以看到那个 moment 是一个有很多方法的对象)。

如果我写 import moment from 'moment'; 浏览器中的代码运行正常,但是 typescript 编译失败并显示“module moment has no default export”,我无法从编写代码时使用 Atom。

我做错了什么?在 Angular 2 typescript 应用程序中导入 moment.js(和任何非 typescript 库)的正确方法是什么?

最佳答案

import * as moment_ from 'moment';
const moment:moment.MomentStatic = (<any>moment_)['default'] || moment_;

关于typescript - 在 Angular 2 typescript 应用程序中使用 moment.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35254524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com