独立散景JS示例



作为打字稿的新手用户(但经验丰富的散景用户),我正在尝试采用BokehJS示例之一并独立运行它 - 这是在Bokeh git存储库的文件层次结构之外。

例如,如果我想运行burtin示例,我将.ts.htmltsconfig.json(从examples目录的顶层)复制到一个新文件夹中。然后,我可以修改.html文件中的linkscript标记,以指向相应资源的本地副本。当我尝试运行tsc burtin.ts时,出现以下错误:

$ tsc burtin.ts
burtin.ts(2,16): error TS2304: Cannot find name 'Bokeh'.
burtin.ts(2,16): error TS2503: Cannot find namespace 'Bokeh'.
burtin.ts(3,27): error TS2304: Cannot find name 'Bokeh'.
burtin.ts(5,18): error TS2503: Cannot find namespace 'Bokeh'.
burtin.ts(6,16): error TS2503: Cannot find namespace 'Bokeh'.
burtin.ts(8,24): error TS2304: Cannot find name 'Bokeh'.
burtin.ts(9,3): error TS2304: Cannot find name 'Bokeh'.
burtin.ts(10,3): error TS2304: Cannot find name 'Bokeh'.

如何告诉打字稿编译器在哪里可以找到Bokehburtin示例中的tsconfig.json具有以下内容:

{
"extends": "../tsconfig.json",
"files": [
"../../src/coffee/api/typings.d.ts",
"burtin.ts"
]
}

也许typings.d.ts告诉编译器在哪里查找导出的 BokehJS 名称,但不清楚我是否需要拥有完整的散景源库来编译示例(conda install bokeh时不包括typings.d.ts文件)。

有关如何设置此示例并独立运行它的任何见解将不胜感激。

更新:即使tsc抛出错误,它仍然会产生一个工作burtin.js并且 html 页面正确显示。我只是不清楚是否有更优化的方法来设置开发环境。

运行tsc burtin.ts忽略tsconfig.json。您应该改为运行tsc -p tsconfig.json(或tsc -p .)。这样,当找不到键入(d.ts文件)时,您将收到错误。打字应该是 conda 和 npm 包的一部分,但看起来我们这里有一个回归,所以现在你将不得不求助于克隆 bokeh 的存储库或处理 *.d.ts 文件。这些仅在编译时才需要,不会在运行时使用。无论是否有键入,TypeScript 仍将编译 *.ts 文件并生成有效的 *.js 文件,只要没有语法或其他基本错误并且noEmitOnError设置为false。这是因为 TypeScript 的类型系统在生成 *.js 文件之前被完全擦除,并且不会根据程序的类型生成任何代码。

鉴于bokehjs中的TypeScript支持正在积极开发中,并且bokehjs正在TypeScript中从头开始重写,几周内应该在这方面有重大改进。特别是,将提供涵盖整个库的新自动生成的打字。理想情况下,将包含一个散景.d.ts文件。

最新更新