我读了这篇文章,我想使用 D3.js (v4+) 仅使用这样的 import 语句:
import { selection } from '../node modules/d3/build/d3.js';
Run Code Online (Sandbox Code Playgroud)
但是,因为代码输出是UMD(或读取this)并且无法导入,因为某些全局变量未定义,并且 ES6 无法解析例如中的绝对名称node_modules,并且 vanilla 不支持没有扩展名的 import 语句,如下所示:
import * as someFeature from './myAwesomeModule';
Run Code Online (Sandbox Code Playgroud)
这是导入模块的模式,每一天都在成长,就像你在这里看到的那样。
今天我如何在没有任何插件的情况下使用 import 语句?
我可以在 HTML 中的标记JSDoc中使用script,但无法引用类型定义文件 ( .d.ts)。我在用着VS Code。这可能吗?如果可以我该怎么做?下面是一些示例代码:
该tsconfig.json文件(我不确定如何在我的测试中完全使用它,它似乎不需要。):
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"myLib": ["types/MyLib/index.d.ts"],
"myLib2": ["types/MyLib/index2.d.ts"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
在types/MyLib/index.d.ts:
declare namespace myLib {
function makeGreeting(s: string): string
let numberOfGreetings: number
}
Run Code Online (Sandbox Code Playgroud)
在 JS 文件中index.js,工作正常:
/// <reference path="./types/MyLib/index.d.ts" />
// @ts-check
var result = myLib.makeGreeting("Cheese")
console.log(result)
Run Code Online (Sandbox Code Playgroud)
在 HTML 文件中(这些都不起作用)index.html:
<script>
/// <reference path="./types/MyLib/index.d.ts" />
// @ts-check
var result = myLib.makeGreeting("Cheese")
</script>
<script> …Run Code Online (Sandbox Code Playgroud)