小编rit*_*taj的帖子

类型联合不检查多余的属性

让我们想象一个具有属性AB或的对象C,例如:

const temp = {
  A: 1,
  B: 2,
}
Run Code Online (Sandbox Code Playgroud)

或者

const temp = {
  C: 3,
}
Run Code Online (Sandbox Code Playgroud)

直觉上,我认为这种类型为:

type T =  {A: number, B: number} | {C: number};

const valid: T = {A: 1, B: 2};
const alsoValid: T = {C: 3};

// Should complain but it does not
const invalid: T  = {A: 1, B: 2, C: 3};
// Also should complain
const alsoInvalid: T = {A:1, C: 3};
Run Code Online (Sandbox Code Playgroud)

但是 TS 将此类类型视为 …

typescript

6
推荐指数
2
解决办法
164
查看次数

自动实现的属性真的会在编译时生成私有字段吗?

在此处输入图片说明

编译并运行程序后:

class Person
{
    private string surname;

    public string Name { get; set; }
    public string Surname
    {
        get { return surname;}
        set
        {
            surname = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

可以看到,从链接的图像中,没有显示“名称”私有字段。只是 Visual Studio 无法识别它,还是发生了其他事情?

我已经多次阅读诸如“至于您的两个 C# 示例,一个只是另一个的语法糖。” 或“编译时将创建一个支持字段。”。

有什么问题?

.net c#

0
推荐指数
1
解决办法
551
查看次数

标签 统计

.net ×1

c# ×1

typescript ×1