public void WriteFunctionSignatureWithComplexParameters() { var expectedResult = @"function TestFunction<Type1, Type2>(testParameter: TestClass<Type1, Type2>): void"; var tsFunctionsignature = new TypescriptFunctionSignature { Name = "TestFunction", GenricTypeParameters = new TypescriptGenericTypeParameters { new TypescriptGenericTypeParameter { Name = "Type1" }, new TypescriptGenericTypeParameter { Name = "Type2" } }, Parameters = new List <TypescriptParameter> { new TypescriptParameter { Name = "testParameter", TypescriptType = new TypescriptType(TestData.classWithBaseAndGenerics) } } }; AssertThatWritingFunctionSignatureGivesTheExpectedResult(expectedResult, tsFunctionsignature); }
public void WriteFunctionSignature() { var expectedResult = @"function TestFunction(): void"; var tsFunctionSignature = new TypescriptFunctionSignature { Name = "TestFunction", }; AssertThatWritingFunctionSignatureGivesTheExpectedResult(expectedResult, tsFunctionSignature); }
/// <summary> /// Writes a typescript function signature. /// </summary> /// <param name="tsFunctionSignature">the function signature to write.</param> /// <param name="standaloneFunction">whether is is a standalone function. if true the function keyword is written in fron of the function signature.</param> /// <param name="onlySignature">whether only the signature is written, is so it will end with a ';'</param> public void WriteTypescriptFunctionSignature(TypescriptFunctionSignature tsFunctionSignature, bool standaloneFunction = false, bool onlySignature = false) { if (standaloneFunction) { syntaxWriter.Write(TypescriptSyntaxKeywords.function.ToString()); syntaxWriter.WriteSpace(); } syntaxWriter.Write(tsFunctionSignature.Name); WriteGenericParameters(tsFunctionSignature.GenricTypeParameters); WriteParameters(tsFunctionSignature.Parameters); WriteTypeAnnotation(tsFunctionSignature.ReturnType); if (onlySignature) { syntaxWriter.Write(";"); } }
private void AssertThatWritingFunctionSignatureGivesTheExpectedResult(string expectedResult, TypescriptFunctionSignature tsFunctionSignature) { var writer = new TypescriptWriter(); writer.WriteTypescriptFunctionSignature(tsFunctionSignature, true); var result = writer.ToString(); result.ShouldBeEquivalentTo(expectedResult); }