Add language service test when element type is a union type

This commit is contained in:
Kanchalai Tanglertsampan 2017-02-09 12:40:08 -08:00
parent d0dcee0b23
commit 6dec0f5ea6
5 changed files with 122 additions and 0 deletions

View 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");

View file

@ -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();

View file

@ -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();

View 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"
})

View 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"
})