Add language service test when element type is a union type
This commit is contained in:
parent
d0dcee0b23
commit
6dec0f5ea6
23
tests/cases/fourslash/tsxCompletionUnionElementType.ts
Normal file
23
tests/cases/fourslash/tsxCompletionUnionElementType.ts
Normal file
|
@ -0,0 +1,23 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
|
||||
//@Filename: file.tsx
|
||||
// @jsx: preserve
|
||||
// @noLib: true
|
||||
|
||||
//// declare module JSX {
|
||||
//// interface Element { }
|
||||
//// interface IntrinsicElements {
|
||||
//// }
|
||||
//// interface ElementAttributesProperty { props; }
|
||||
//// }
|
||||
//// function SFC1(prop: { x: number }) {
|
||||
//// return <div>hello </div>;
|
||||
//// };
|
||||
//// function SFC2(prop: { x: boolean }) {
|
||||
//// return <h1>World </h1>;
|
||||
//// }
|
||||
//// var SFCComp = SFC1 || SFC2;
|
||||
//// <SFCComp /**/ />
|
||||
|
||||
goTo.marker();
|
||||
verify.completionListContains("x", "(property) x: number | boolean");
|
|
@ -0,0 +1,24 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
|
||||
//@Filename: file.tsx
|
||||
// @jsx: preserve
|
||||
// @noLib: true
|
||||
|
||||
//// declare module JSX {
|
||||
//// interface Element { }
|
||||
//// interface IntrinsicElements {
|
||||
//// }
|
||||
//// interface ElementAttributesProperty { props; }
|
||||
//// }
|
||||
//// function SFC1(prop: { x: number }) {
|
||||
//// return <div>hello </div>;
|
||||
//// };
|
||||
|
||||
//// function SFC2(prop: { x: boolean }) {
|
||||
//// return <h1>World </h1>;
|
||||
//// }
|
||||
|
||||
//// var [|SFCComp|] = SFC1 || SFC2;
|
||||
//// <[|SFCComp|] x={ "hi" } />
|
||||
|
||||
verify.rangesReferenceEachOther();
|
|
@ -0,0 +1,23 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
|
||||
//@Filename: file.tsx
|
||||
// @jsx: preserve
|
||||
// @noLib: true
|
||||
|
||||
//// class RC1 extends React.Component<{}, {}> {
|
||||
//// render() {
|
||||
//// return null;
|
||||
//// }
|
||||
//// }
|
||||
|
||||
//// class RC2 extends React.Component<{}, {}> {
|
||||
//// render() {
|
||||
//// return null;
|
||||
//// }
|
||||
//// private method() { }
|
||||
//// }
|
||||
|
||||
//// var [|RCComp|] = RC1 || RC2;
|
||||
//// <[|RCComp|] />
|
||||
|
||||
verify.rangesReferenceEachOther();
|
26
tests/cases/fourslash/tsxGoToDefinitionUnionElementType1.ts
Normal file
26
tests/cases/fourslash/tsxGoToDefinitionUnionElementType1.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
|
||||
//@Filename: file.tsx
|
||||
// @jsx: preserve
|
||||
// @noLib: true
|
||||
|
||||
//// declare module JSX {
|
||||
//// interface Element { }
|
||||
//// interface IntrinsicElements {
|
||||
//// }
|
||||
//// interface ElementAttributesProperty { props; }
|
||||
//// }
|
||||
//// function /*pt1*/SFC1(prop: { x: number }) {
|
||||
//// return <div>hello </div>;
|
||||
//// };
|
||||
|
||||
//// function SFC2(prop: { x: boolean }) {
|
||||
//// return <h1>World </h1>;
|
||||
//// }
|
||||
|
||||
//// var SFCComp = SFC1 || SFC2;
|
||||
//// <SFC/*one*/Comp x />
|
||||
|
||||
verify.goToDefinition({
|
||||
"one": "pt1"
|
||||
})
|
26
tests/cases/fourslash/tsxGoToDefinitionUnionElementType2.ts
Normal file
26
tests/cases/fourslash/tsxGoToDefinitionUnionElementType2.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
|
||||
//@Filename: file.tsx
|
||||
// @jsx: preserve
|
||||
// @noLib: true
|
||||
|
||||
//// class RC1 extends React.Component<{}, {}> {
|
||||
//// render() {
|
||||
//// return null;
|
||||
//// }
|
||||
//// }
|
||||
|
||||
//// class RC2 extends React.Component<{}, {}> {
|
||||
//// render() {
|
||||
//// return null;
|
||||
//// }
|
||||
//// private method() { }
|
||||
//// }
|
||||
|
||||
//// var /*pt1*/RCComp = RC1 || RC2;
|
||||
|
||||
//// <RC/*one*/Comp />
|
||||
|
||||
verify.goToDefinition({
|
||||
"one": "pt1"
|
||||
})
|
Loading…
Reference in a new issue