为 NativeScript 项目添加 iOS / Android 平台 API 的智能感知

使用 NativeScript ,我们可以很容易的调用平台的原生 API,在开发过程中,我们可以添加这些 API 的 d.ts 文件来提供智能感知,帮助我们更方便的构建媲美原生的 APP。

首先通过 npm 下载 d.ts 文件

npm i --save-dev tns-platform-declarations

然后添加引用,修改项目根目录下的 reference.d.ts 内容设置为下面的代码:

/// <reference path="./node_modules/tns-core-modules/tns-core-modules.es6.d.ts" />

/// <reference path="node_modules/tns-platform-declarations/android/android17.d.ts" />
/// <reference path="node_modules/tns-platform-declarations/ios/ios.d.ts" />

然后修改 tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "noEmitHelpers": true,
        "noEmitOnError": true,
        "skipLibCheck": true,
        "lib": [
            "es2016"
        ]
    },
    "exclude": [
        "node_modules",
        "platforms",
        "**/*.aot.ts"
    ]
}

如果你按照官方的描述来配置 reference.d.ts,你可能会在转译 ts 时遇到下面的问题,这时候按照上面的代码来设置即可解决

node_modules/tns-platform-declarations/ios/objc-i386/objc!UIKit.d.ts(4954,15): error TS2300: Duplicate identifier 'UIEvent'.
    
node_modules/typescript/lib/lib.d.ts(14991,11): error TS2300: Duplicate identifier 'UIEvent'.

node_modules/typescript/lib/lib.d.ts(14997,13): error TS2300: Duplicate identifier 'UIEvent'.

参考:https://github.com/NativeScript/NativeScript/issues/2724

posted @ 2017-03-02 20:08  不如隐茶去  阅读(817)  评论(0编辑  收藏  举报