我找到了一个可能的答案: Is any JavaScript code a valid TypeScript code?
我正在使用Visual Studio和TypeScript插件开发Web项目。在以下帖子中,我找到了这个答案:
没有任何有效的JavaScript代码是有效的TypeScript,请参阅下面的示例。
var testVar = 4; testVar = "asdf";
TypeScript提供以下内容 错误:无法将字符串转换为数字。使这项工作成功 TypeScript添加“:any”,如下所示。
var testVar: any = 4; testVar = "asdf"
这是因为TypeScript 注意到testVar已声明,并在声明中为其分配了一个 数字,因此它决定它应该保持一个数字。
我正在尝试使用HighCharts。如果我将代码保存在Javascript文件中,我不会收到任何错误。但是当我将代码保存在Typescript文件中时,我有一个错误:
“找不到名字”HighCharts“。
在这里,您可以看到我的代码的相关部分:
// Put definitions of highcharts, highstocks below this line
// Example 1 Chart
var initializeChart1 = function () {
require(['jquery', 'highcharts', 'highchartsMore', 'highchartsExporting'], function ($) {
$("#myChart").highcharts({
chart: {
type: 'spline',
backgroundColor: '#ECECEC',
// ------THIS GIVES AN ERROR, BUT WORKING WHEN SAVED AS .JS file
animation: Highcharts.svg, // don't animate in old IE
// -------------------------
...
我想将我的JavaScript代码保存在TS文件中的原因很简单:我目前正在学习TypeScript,并且我将JavaScript和TypeScript版本或相同的代码保存在同一个文件中。根据TypeScript是否完整/正常工作,我取消注释并评论JavaScript。
我的问题是:
答案 0 :(得分:4)
是的,您可以在打字稿文件中使用js代码,但编译器需要了解您使用的对象和库。 您有两个选项可以进行编译。要么为您的库添加.d.ts文件,要么欺骗编译器,您可以像这样自己声明Highcharts对象。
declare var Highcharts: any;
var initializeChart1 = function () {
require(['jquery', 'highcharts', 'highchartsMore', 'highchartsExporting'], function ($) {
$("#myChart").highcharts({
chart: {
type: 'spline',
backgroundColor: '#ECECEC',
animation: Highcharts.svg, // don't animate in old IE