如何从 TypeScript 项目中调用 JavaScript 个库?
How to call JavaScript libraries from TypeScript project?
我正在处理现有的 TypeScript AngularJS 项目。现在我想使用 d3js,但要这样做我需要手动下载 d3js typescript(事实证明 d3 由一百万个文件组成),然后是 d3js min javascript。公司代理不允许我使用工具来 download/manage 依赖项等,所以我只有手动选项。
因此,我更喜欢简单地在 index.html
中导入 d3js 并直接从 TypeScript 调用 d3js,而不使用 d3 ts 版本。
所以我做,例如
var svg = d3.select("svg"),
margin = {top: 20, right: 20, bottom: 30, left: 40},
width = +svg.attr("width") - margin.left - margin.right,
height = +svg.attr("height") - margin.top - margin.bottom,
g = svg.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var x = d3.scaleBand()
.rangeRound([0, width])
.paddingInner(0.05)
.align(0.1);
但是我得到了编译器错误 "Cannot find name d3
" 有没有办法在 TypeScript 中告诉这个 JavaScript 对象是在别处定义的,它不应该对它做任何假设?
可惜d3 js被拆成了一百万块...我发现它不是很有用,没有select
谁会用d3 scale
?这对我来说毫无意义。
定义文件仅在ts源码编译为js时需要,运行js不需要
与@types
一起使用最简单:
npm install --save @types/d3
如果做不到,请手动下载定义文件并将其放在源附近,然后引用它:
/// <reference path="PATH_TO_D3_D_TS" />
如果您也做不到,请声明:
declare const d3: any;
这将告诉编译器变量 d3
存在,并且它的类型是 any
,因此您不应该因使用它而出现异常。
我正在处理现有的 TypeScript AngularJS 项目。现在我想使用 d3js,但要这样做我需要手动下载 d3js typescript(事实证明 d3 由一百万个文件组成),然后是 d3js min javascript。公司代理不允许我使用工具来 download/manage 依赖项等,所以我只有手动选项。
因此,我更喜欢简单地在 index.html
中导入 d3js 并直接从 TypeScript 调用 d3js,而不使用 d3 ts 版本。
所以我做,例如
var svg = d3.select("svg"),
margin = {top: 20, right: 20, bottom: 30, left: 40},
width = +svg.attr("width") - margin.left - margin.right,
height = +svg.attr("height") - margin.top - margin.bottom,
g = svg.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var x = d3.scaleBand()
.rangeRound([0, width])
.paddingInner(0.05)
.align(0.1);
但是我得到了编译器错误 "Cannot find name d3
" 有没有办法在 TypeScript 中告诉这个 JavaScript 对象是在别处定义的,它不应该对它做任何假设?
可惜d3 js被拆成了一百万块...我发现它不是很有用,没有select
谁会用d3 scale
?这对我来说毫无意义。
定义文件仅在ts源码编译为js时需要,运行js不需要
与@types
一起使用最简单:
npm install --save @types/d3
如果做不到,请手动下载定义文件并将其放在源附近,然后引用它:
/// <reference path="PATH_TO_D3_D_TS" />
如果您也做不到,请声明:
declare const d3: any;
这将告诉编译器变量 d3
存在,并且它的类型是 any
,因此您不应该因使用它而出现异常。