作为打字稿的新手用户(但是经验丰富的Bokeh用户),我正试图选择其中一个BokehJS examples并独立运行 - 这是在Bokeh git repo的文件层次结构之外。
例如,如果我想运行burtin
示例,请复制.ts
,.html
和tsconfig.json
(来自{{的顶层) 1}}目录)进入一个新文件夹。然后,我可以修改examples
文件中的link
和script
标记,以指向相应资源的本地副本。当我尝试运行.html
时,出现以下错误:
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'.
? Bokeh
示例中的tsconfig.json
具有以下内容:
burtin
也许{
"extends": "../tsconfig.json",
"files": [
"../../src/coffee/api/typings.d.ts",
"burtin.ts"
]
}
告诉编译器在哪里查找导出的BokehJS名称,但是我不清楚是否需要有完整的bokeh源代码来编译示例(typings.d.ts
文件不是包含在typings.d.ts
)。
有关如何设置此示例并单独运行它的任何见解将不胜感激。
更新:即使conda install bokeh
引发了错误,它仍会生成有效tsc
,并且html页面会正确显示。我不清楚是否有更优化的方式来设置开发环境。
答案 0 :(得分:1)
正在运行tsc burtin.ts
忽略tsconfig.json
。您应该正在运行tsc -p tsconfig.json
(或tsc -p .
)。这样,当找不到打字(d.ts文件)时,您将收到错误。打字应该是conda和npm包的一部分,但看起来我们在这里有一个回归,所以现在你将不得不求助于克隆散景的存储库或应对* .d.ts文件。这些仅用于编译,并且不在运行时使用。有了打字或不打字,只要没有语法或其他基本错误并且noEmitOnError
设置为false
,TypeScript仍会编译* .ts文件并生成有效的* .js文件。这是因为TypeScript的类型系统在生成* .js文件之前被完全擦除,并且不会根据程序的类型生成代码。
鉴于在bokehjs中的TypeScript支持正在积极开发中,并且正在使用TypeScript从头开始重写bokehjs,因此几周内该领域应该有重大改进。特别是,将提供覆盖整个库的新的自动生成的打字。理想情况下,将包含一个bokeh.d.ts文件。