相关疑难解决方法(0)

了解tsconfig文件中的esModuleInterop

我正在检查某人的.tsconfig文件,发现了--esModuleInterop

这是他的.tsconfig档案

{
  "compilerOptions": {
    "moduleResolution": "node",
    "target": "es6",
    "module": "commonjs",
    "lib": ["esnext"],
    "strict": true,
    "sourceMap": true,
    "declaration": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "declarationDir": "./dist",
    "outDir": "./dist",
    "typeRoots": ["node_modules/@types"]
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modues"]
}
Run Code Online (Sandbox Code Playgroud)

在这里,我的主要问题是 "esModuleInterop": true,"allowSyntheticDefaultImports": true,。我知道他们有点依赖 "module": "commonjs",。有人可以尝试用最好的人类语言来解释它吗?

allowSyntheticDefaultImports州的官方文档

允许从模块进行默认导入而没有默认导出。这不影响代码发出,仅影响类型检查。

那是什么意思?如果没有任何导出默认值,我认为导入默认值的唯一用例就是初始化某些东西?喜欢单身人士吗?

以下问题/答案也没有意义, 是否可以在tsconfig中使用--esModuleInterop而不是将其作为标志?

--esModuleInterop在编译器页面上定义

发出__importStar和__importDefault帮助程序以实现运行时babel生态系统兼容性,并启用--allowSyntheticDefaultImports以实现类型系统兼容性。

我似乎也很难理解/理解

typescript

31
推荐指数
2
解决办法
1万
查看次数

如何在TypeScript中通过AMD要求jquery

我如何为我的TypeScript模块需要jquery AMD模块.例如,假设脚本的目录结构如下所示:


    jquery-1.8.2.js
    jquery.d.ts
    module.ts
    require.js

我希望从module.ts生成的js文件要求通过require.js加载jquery-1.8.2.js.

目前我有:


    import jquery = module('jquery') 

这导致当前范围中不存在名称"jquery".

requirejs typescript

16
推荐指数
4
解决办法
2万
查看次数

使用带有Typescript 2的jQuery

我是Typscript 2的新手.我要做的是在打字稿中使用jQuery.在这个问题中我读到你需要两件事:

npm install --save-dev @types/jquery
Run Code Online (Sandbox Code Playgroud)

这将安装包'@ types/jquery 2.0.39'.

"devDependencies": {
    "@types/jquery": "^2.0.39",
    "typescript": "^2.0.2",
    "typings": "^1.0.4"
  }
Run Code Online (Sandbox Code Playgroud)

然后,在Typescript文件中我把它:

import $ from "jquery";
Run Code Online (Sandbox Code Playgroud)

但我得到了打字稿错误'无法找到模块'jquery'.我究竟做错了什么?

同样的错误

import $ = require("jquery");
Run Code Online (Sandbox Code Playgroud)

完整的打字稿文件:

import { Component } from '@angular/core';
import $ from "jquery";

@Component({
  selector: 'my-app',
  template: `<div id="test"></div>`,
})
export class AppComponent  {
    constructor() {
        $('#test').html('This is a test');
    }
}
Run Code Online (Sandbox Code Playgroud)

jquery typescript2.0

5
推荐指数
1
解决办法
2085
查看次数

标签 统计

typescript ×2

jquery ×1

requirejs ×1

typescript2.0 ×1