72 lines
1.6 KiB
Plaintext
72 lines
1.6 KiB
Plaintext
=== tests/cases/conformance/types/intersection/intersectionTypeReadonly.ts ===
|
|
interface Base {
|
|
readonly value: number;
|
|
>value : number
|
|
}
|
|
interface Identical {
|
|
readonly value: number;
|
|
>value : number
|
|
}
|
|
interface Mutable {
|
|
value: number;
|
|
>value : number
|
|
}
|
|
interface DifferentType {
|
|
readonly value: string;
|
|
>value : string
|
|
}
|
|
interface DifferentName {
|
|
readonly other: number;
|
|
>other : number
|
|
}
|
|
let base: Base;
|
|
>base : Base
|
|
|
|
base.value = 12 // error, lhs can't be a readonly property
|
|
>base.value = 12 : 12
|
|
>base.value : any
|
|
>base : Base
|
|
>value : any
|
|
>12 : 12
|
|
|
|
let identical: Base & Identical;
|
|
>identical : Base & Identical
|
|
|
|
identical.value = 12; // error, lhs can't be a readonly property
|
|
>identical.value = 12 : 12
|
|
>identical.value : any
|
|
>identical : Base & Identical
|
|
>value : any
|
|
>12 : 12
|
|
|
|
let mutable: Base & Mutable;
|
|
>mutable : Base & Mutable
|
|
|
|
mutable.value = 12;
|
|
>mutable.value = 12 : 12
|
|
>mutable.value : number
|
|
>mutable : Base & Mutable
|
|
>value : number
|
|
>12 : 12
|
|
|
|
let differentType: Base & DifferentType;
|
|
>differentType : Base & DifferentType
|
|
|
|
differentType.value = 12; // error, lhs can't be a readonly property
|
|
>differentType.value = 12 : 12
|
|
>differentType.value : any
|
|
>differentType : Base & DifferentType
|
|
>value : any
|
|
>12 : 12
|
|
|
|
let differentName: Base & DifferentName;
|
|
>differentName : Base & DifferentName
|
|
|
|
differentName.value = 12; // error, property 'value' doesn't exist
|
|
>differentName.value = 12 : 12
|
|
>differentName.value : any
|
|
>differentName : Base & DifferentName
|
|
>value : any
|
|
>12 : 12
|
|
|