TypeScript/tests/baselines/reference/intersectionTypeReadonly.types

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