AE
function someFunction() {
return 1
}
someFunction.prop = 321
namespace someFunction {
export const prop = 1
}Size: a a a
AE
function someFunction() {
return 1
}
someFunction.prop = 321
namespace someFunction {
export const prop = 1
}АЗ
J
type Foo = {
(): void;
lala?: number;
};
const foo: Foo = () => {
foo.lala = 1;
}АГ
type Foo = {
(): void;
lala?: number;
};
const foo: Foo = () => {
foo.lala = 1;
}b
f в примере ниже не тайпчекалось, а только f3 function foo<T>(n: number) {
return (v: T) => {
return Stream.continually(() => v).take(n)
}
}
let f = foo(10)("a") // OK, f: Stream<{}>
let f2: Stream<string> = foo(10)("a") // Error: Type {} is not assignable to type 'string'
let f3 = foo<string>(10)("a") //OK, f: Stream<string>b
f в примере ниже не тайпчекалось, а только f3 function foo<T>(n: number) {
return (v: T) => {
return Stream.continually(() => v).take(n)
}
}
let f = foo(10)("a") // OK, f: Stream<{}>
let f2: Stream<string> = foo(10)("a") // Error: Type {} is not assignable to type 'string'
let f3 = foo<string>(10)("a") //OK, f: Stream<string><T = never>. правда хотелось бы опцию комплиятора function foo<T = never>(n: number) {
return <T>(v: T) => {
return Stream.continually(() => v).take(n)
}
}b
f в примере ниже не тайпчекалось, а только f3 function foo<T>(n: number) {
return (v: T) => {
return Stream.continually(() => v).take(n)
}
}
let f = foo(10)("a") // OK, f: Stream<{}>
let f2: Stream<string> = foo(10)("a") // Error: Type {} is not assignable to type 'string'
let f3 = foo<string>(10)("a") //OK, f: Stream<string> function foo(n: number) {
return <T>(v: T) => {
return Stream.continually(() => v).take(n)
}
}GB
GB
GB
IP
IP
d
GB
AE
hoc(ReplacementComponent)(OriginalComponent). Суть в том, что иногда вместо OriginalComponent надо рендерить ReplacementComponent. Соответственно ReplacementComponent должен уметь принимать пропсы от OriginalComponent (но не только их, в общем случае. Пытаюсь так:function hoc<P, R extends P>(ReplacementComponent: React.ComponentClass<R>) {
return function hocFactory<T extends React.ComponentClass<P>>(OriginalComponent: T): T {
}
}"a", а в R то же свойство, но с типом "a" | "b", то TS ругается. Кто-нибудь такое решал уже?IP
GB
IP
IP