繁体   English   中英

TypeScript文件中的JavaScript代码.ts无效

[英]JavaScript code inside TypeScript file .ts not working

我找到了一个可能的答案我的问题: 任何JavaScript代码都是有效的TypeScript代码吗?

我正在使用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。

我的问题是:

  1. 为什么我会收到此错误?
  2. 是否可以在TS文件中使用任何JavaScript代码?

是的,您可以在打字稿文件中使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM