Angualr中如何引入 · 原生js · 文件

81 篇文章 7 订阅

Angualr中如何引入 · 原生js · 文件

这里算是一个记录吧,我从网上看了一点别人的关于这方面解释的文章:

  • 有些文章写的不太对头。
  • 有些文章写的还是 Angualr 1 的东西。
  • 有些文章写的有些麻烦,改这个,改那个,看了不太对劲。

这里记录一下我成功的方法,用的是 AngualrCLI 版本 v12,也并没有出现 奇奇怪怪的编译不通过这啊那啊 的问题。


先贴一下我的tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "forceConsistentCasingInFileNames": true,
    "strict": false,
    "noImplicitReturns": false,
    "noFallthroughCasesInSwitch": true,
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2017",
    "module": "es2020",
    "lib": ["es2018", "dom"]
  }
}

我没怎么具体配置过这个文件,一般都是走的默认配置。


OK,我们开始:

  • 我们都知道,原生js加载之后,所有的通过function或者var定义的东西都会被提升到全局,也就是说我们在任何地方理应都是可以访问到这个函数或变量的。
  • 所以,接下来无非就是引入了js,我怎么让typescript知道有这个玩意,并且我能用。

整体来说就两步:

第一步:在angular.json中引入js文件

"architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            
            ...
           
            "styles": [
              "src/assets/lib/cm/UI/css/render.css",
            ],
            "scripts": [
              "src/assets/lib/cm/UI/render.js" // 引入的js文件
            ]
              
            ...
            
          }
            
        ...
}

第二步:在使用declare到的组件中声明定义一下

  1. 比如你在js文件中写了:

    function myFun() { }
    

    那就可以在angular的组件中声明:

    declare function myFun():void;
    
  2. 如果是一个变量:

    var name = "";
    

    那就可以在angular的组件中声明:

    declare var name:string;
    

比如,jQuery的使用:

如果你不是通过npm下载的,那你就可以引入jQuery源文件,然后声明:

declare var $: unknown;
// 或者
declare jQuery: unknown;

接着正常使用就完事了。

具体的关于typescript如何声明可以看官网:typescript声明文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值