可选链打包报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可选链打包报错相关的知识,希望对你有一定的参考价值。

参考技术A 之前本地TS用的是awesome-typescript-loader,TS的配置target是es5,升级为Vite构建之后,TS的配置target改为ESNext,打包的时候就开始报错,不识别可选链?.的这种写法,原因在于target的修改
解决方案是修改TypeScript的loader,改为babel-loader,用@babel/preset-typescript的方式来处理TypeScript,因为@babel/preset-typescript的TS配置target也是ESNext

可选链

//: Playground - noun: a place where people can play

import Foundation

/*
可选链:
1.可选链访问方式:将强制解析的感叹号换成?, 在隐式解析的后面也添加?
2.可选链会自动判断程序访问的关联实例是否为nil, 即使为nil, 也不会报异常
*/

class Person
{
    var name:String?
    var age: Int?
    
    init(name:String)
    {
        self.name = name
    }
    
    func info()
    {
        print("我的名字是:\(self.name!)")
    }
}

class Company
{
    var employees = [
        Person(name: "Rinpe"),
        Person(name: "Lili"),
        Person(name: "Lolo")
    ]
    
    func isEmployee(name:String) -> Person?
    {
        for employee in employees {
            if name == employee.name
            {
                return employee
            }
        }
        return nil
    }
}

var e = Person(name: "Lala")

let company = Company()
company.isEmployee(e.name!)?.age = 10

 

以上是关于可选链打包报错的主要内容,如果未能解决你的问题,请参考以下文章

javascript中的可选链操作符

可选链

可选链(?.)

Swift新手教程12-可选链

[Swift]学习笔记-可选类型/可选链

Swift的可选链,类型转换和扩展