l***@163.com
l***@163.com
  • 发布:2021-08-26 15:39
  • 更新:2021-08-31 15:03
  • 阅读:1338

【报Bug】可选链(proposal-optional-chaining)在ts文件中无法使用,编译到H5报错

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows10 家庭中文版

HBuilderX类型: 正式

HBuilderX版本号: 3.2.3

浏览器平台: Chrome

浏览器版本: 92

项目创建方式: HBuilderX

操作步骤:

新建一个uniapp项目,使用默认配置

新增tsconfig:

{  
  "compilerOptions": {  
    "target": "esnext",  
    "module": "esnext",  
    "moduleResolution": "node",  
    "strict": true,  
    "jsx": "preserve",  
    "sourceMap": true,  
    "skipLibCheck": true,  
    "resolveJsonModule": true,  
    "esModuleInterop": true,  
    "lib": ["esnext", "dom"],  
    "types": [],  
    "baseUrl": ".",  
    "paths": {  
      "~/*": ["src/*"]  
    }  
  },  
  "vueCompilerOptions": {  
    "experimentalCompatMode": 2  
  },  
  "include": ["**/*.ts", "**/*.d.ts", "**/*.*.d.ts", "**/*.tsx", "**/*.vue"],  
  "exclude": ["node_modules", "dist"]  
}  

新建a.ts

export default function(){  
    const obj = {name:'Joe'};  
    console.log(obj?.name);  
};

在App.vue里import a

import consoleA from  './a.ts';  
    export default {  
        onLaunch: function() {  
            console.log('App Launch')  
            consoleA();  
        },  
        onShow: function() {  
            console.log('App Show')  
        },  
        onHide: function() {  
            console.log('App Hide')  
        }  
    }

编译报错:

15:29:35.395 语法错误: D:\git\test\a.ts: Unexpected token (3:22)  
15:29:35.398   1 | export default function () {  
15:29:35.398   2 |     const obj = { name: 'Joe' };  
15:29:35.401 > 3 |     console.log(obj ? .name : );  
15:29:35.401     |                       ^  
15:29:35.404   4 | }  
15:29:35.404   5 | ;  
15:29:35.407   6 |   
15:29:35.411       at a.ts:3  
15:29:35.411 [tsl] ERROR in D:\git\test\a.ts(5,18)  
15:29:35.414       TS1109: Expression expected.  
15:29:35.414 [tsl] ERROR in D:\git\test\a.ts(5,23)  
15:29:35.417       TS1005: ':' expected.

预期结果:

正常编译

实际结果:

报错

15:29:35.395 语法错误: D:\git\test\a.ts: Unexpected token (3:22)
15:29:35.398 1 | export default function () {
15:29:35.398 2 | const obj = { name: 'Joe' };
15:29:35.401 > 3 | console.log(obj ? .name : );
15:29:35.401 | ^
15:29:35.404 4 | }
15:29:35.404 5 | ;
15:29:35.407 6 |
15:29:35.411 at a.ts:3
15:29:35.411 [tsl] ERROR in D:\git\test\a.ts(5,18)
15:29:35.414 TS1109: Expression expected.
15:29:35.414 [tsl] ERROR in D:\git\test\a.ts(5,23)
15:29:35.417 TS1005: ':' expected.

bug描述:

在任意ts文件里使用js的可选链语法,编译的时候报错。在js文件中使用则不报错。

2021-08-26 15:39 负责人:无 分享
已邀请:
l***@163.com

l***@163.com (作者)

请问官方有人管么?

该问题目前已经被锁定, 无法添加新回复