如何在类型脚本方法中引用自定义javascript函数?

时间:2017-11-01 07:33:24

标签: angular typescript

说,您有一个简单的Javascript函数,例如sayHello()

function sayHello(){
   alert('Hello');
}

并将其作为自定义库assets/js

放入您应用的assets/js/my-js-library.js文件夹中

然后,最后,你从index.html这样引用它:

<script src='http://example.com/assets/js/my-js-library.js'></script>

打字稿需要什么(例如在ngOnInit中),所以你可以做这样的事情?

ngOnInit () {
   sayHello();
}

还是不可能?

2 个答案:

答案 0 :(得分:0)

是的,你可以。

external.js

var myExtObject = (function() {

  return {
    func1: function() {
      alert('function 1 called');
    },
    func2: function() {
      alert('function 2 called');
    }
  }

    })(myExtObject||{})

function justAFunction(){
   alert('test');
}

var webGlObject = (function() { 
  return { 
    init: function() { 
      alert('webGlObject initialized');
    } 
  } 
})(webGlObject||{})

app.ts

import 'external.js'

declare var myExtObject: any;
declare var webGlObject: any;

export class App {
  name:string;
  constructor() {
    this.name = 'Angular2'
    webGlObject.init();
    justAFunction();
  }

  CallFunction1() {
    myExtObject.func1();
  }

  CallFunction2() {
    myExtObject.func2();
  }
}

查看此网址:this one

答案 1 :(得分:0)

external.js

function justAFunction(){
   alert('test');
}

app.ts

import 'external.js'

export class App {
  constructor() {
    justAFunction();
  }
}
这会有用吗? 我假设webGlObject的声明与justAFunction无关。我在func1和func2上剪切代码的原因是因为我没有与对象做生意。我只是想看看裸骨需要制作一个简单的外部HelloWorld js函数,以便在TypeScript中使用。

如果我们只专注于justAFunction,那么这段代码是否必不可少?我想我的错误是使用<Script src=''>而不是import。是的,不是吗?